#include <winsock2.h>
#include <windows.h>
#define _WIN32_IE 0x0600
#include <commctrl.h>
#include <iostream>
#include <signal.h>
#include <string>
#include "menu.h"

//DECLARATIONS
//error trapping signals
#define SIGINT 2
#define SIGKILL 9
#define SIGQUIT 3

using namespace std;
//SOCKETS
SOCKET sock, client;

char buf[1024];
int ret;

string command = "";
string separator = ";";
string str_buf = "";

bool connected = false;

// Globalne deklaracje uchwytów do okien, kontrolek i programu

    // uchwyt do instancji aplikacji
    HINSTANCE hMainAppInst;

    // uchwyt do głównego okna
    HWND hMainWindow;

    // uchwyt do menu
    HMENU hMenu;

    //uchwyty do pacjenta
    HWND hPacjentGroupBox;
    HWND hSzukajPacjentaButton;
    HWND hWyczyscPacjentaButton;
    HWND hAktualizujPacjentaButton;
    HWND hDodajPacjentaButton;

    HWND hPeselStatic;
    HWND hPeselEdit;
    HWND hPeselNowyStatic;
    HWND hPeselNowyEdit;
    HWND hImieStatic;
    HWND hImieEdit;
    HWND hNazwiskoStatic;
    HWND hNazwiskoEdit;
    HWND hAdresStatic;
    HWND hAdresEdit;
    HWND hUwagiStatic;
    HWND hUwagiEdit;
    HWND hAlergieStatic;
    HWND hAlergieEdit;
    HWND hPrzewlekleChorobyStatic;
    HWND hPrzewlekleChorobyEdit;
    HWND hprzebyteChorobyStatic;
    HWND hPrzebyteChorobyEdit;
    HWND hObecneChorobyStatic;
    HWND hObecneChorobyEdit;

    // HWND do choroby
    HWND hGrupaChoroba;
    HWND hSzukajChorobaButton;
    HWND hWyczyscChorobaButton;
    HWND hAktualizujChorobaButton;
    HWND hDodajChorobaButton;
    HWND hIdChorobyStatic;
    HWND hIdChorobyEdit;
    HWND hNazwaChorobaStatic;
    HWND hNazwaChorobaEdit;
    HWND hNowaNazwaChorobaStatic;
    HWND hNowaNazwaChorobaEdit;
    HWND hDataRozpoczeciaChorobaStatic;
    HWND hDataRozpoczeciaChorobaEdit;
    HWND hDataZakonczeniaChorobaStatic;
    HWND hDataZakonczeniaChorobaEdit;
    HWND hGdzieLeczylChorobaStatic;
    HWND hGdzieLeczylChorobaEdit;
    HWND hLeczenieChorobaStatic;
    HWND hLeczenieChorobaEdit;
/*
    // HWND do statystyk
    HWND hGrupaStatystyki;
    HWND hGrupaDaty;
    HWND hDodajStatystykiButton;
    HWND hRysujWykresButton;
    HWND hAktualizujStatystykiButton;
    HWND hJedenStatystykiStatic;
    HWND hDwaStatystykiStatic;
    HWND hTrzyStatystykiStatic;
    HWND hCzteryStatystykiStatic;
    HWND hPiecStatystykiStatic;
    HWND hSzescStatystykiStatic;
    HWND hSiedemStatystykiStatic;
    HWND hOsiemStatystykiStatic;
    HWND hDziewiecStatystykiStatic;
    HWND hDziesiecStatystykiStatic;
    HWND hJedenStatystykiEdit;
    HWND hDwaStatystykiEdit;
    HWND hTrzyStatystykiEdit;
    HWND hCzteryStatystykiEdit;
    HWND hPiecStatystykiEdit;
    HWND hSzescStatystykiEdit;
    HWND hSiedemStatystykiEdit;
    HWND hOsiemStatystykiEdit;
    HWND hDziewiecStatystykiEdit;
    HWND hDziesiecStatystykiEdit;
*/
    //wyjscia
    HWND hWyjscieKlientaStatic;
    HWND hLegendaStanuZdrowiaStatic;

    //przyciski dolne
    HWND hPolaczButton;
    HWND hRozlaczButton;
    HWND hZatrzymajServerButton;
    HWND hZamknijButton;

    HDC hdcOkno;
    PAINTSTRUCT ps;
    RECT rect;
// zdrowy smiley
void PaintZdrowy(HWND hwnd)
{
    hdcOkno = BeginPaint(hwnd, &ps);
    HBRUSH PedzelZiel, PedzelBial, Pudelko;
    HPEN OlowekCzerw, Piornik;
    PedzelZiel = CreateSolidBrush( 0x00FF00 );
    PedzelBial = CreateSolidBrush( 0xFFFFFF );
    OlowekCzerw = CreatePen( PS_DOT, 1, 0x0000FF );
    Pudelko =( HBRUSH ) SelectObject( hdcOkno, PedzelZiel );
    Piornik =( HPEN ) SelectObject( hdcOkno, OlowekCzerw );
    Ellipse( hdcOkno, 200, 530, 300, 630 );
    SelectObject( hdcOkno, Pudelko );
    SelectObject( hdcOkno, Piornik );
    Pudelko =( HBRUSH ) SelectObject( hdcOkno, PedzelBial );
    Ellipse( hdcOkno, 220, 550, 240, 570 );
    Ellipse( hdcOkno, 260, 550, 280, 570 );
    Chord(hdcOkno, 220 ,585, 280, 615, 220, 595, 280, 595);
    DeleteObject( OlowekCzerw );
    DeleteObject( PedzelBial );
    DeleteObject( PedzelZiel );
    ReleaseDC( hwnd, hdcOkno );
    EndPaint(hwnd, &ps);
}

// chory smiley
void PaintChory(HWND hwnd)
{
    hdcOkno = BeginPaint(hwnd, &ps);
    HBRUSH PedzelCzer, PedzelBial, Pudelko;
    HPEN OlowekCzerw, Piornik;
    PedzelCzer = CreateSolidBrush( 0x00FFFF );
    PedzelBial = CreateSolidBrush( 0xFFFFFF );
    OlowekCzerw = CreatePen( PS_DOT, 1, 0x0000FF );
    Pudelko =( HBRUSH ) SelectObject( hdcOkno, PedzelCzer );
    Piornik =( HPEN ) SelectObject( hdcOkno, OlowekCzerw );
    Ellipse( hdcOkno, 200, 530, 300, 630 );
    SelectObject( hdcOkno, Pudelko );
    SelectObject( hdcOkno, Piornik );
    Pudelko =( HBRUSH ) SelectObject( hdcOkno, PedzelBial );
    Ellipse( hdcOkno, 220, 550, 240, 570 );
    Ellipse( hdcOkno, 260, 550, 280, 570 );
    Ellipse( hdcOkno, 220, 585, 280, 615 );
    DeleteObject( OlowekCzerw );
    DeleteObject( PedzelBial );
    DeleteObject( PedzelCzer );
    ReleaseDC( hwnd, hdcOkno );
    EndPaint(hwnd, &ps);
}

// umierajacy smiley
void PaintUmierajacy(HWND hwnd)
{
    hdcOkno = BeginPaint(hwnd, &ps);
    HBRUSH PedzelCzer, PedzelBial, Pudelko;
    HPEN OlowekCzerw, Piornik;
    PedzelCzer = CreateSolidBrush( 0x0000FF );
    PedzelBial = CreateSolidBrush( 0xFFFFFF );
    OlowekCzerw = CreatePen( PS_DOT, 1, 0x0000FF );
    Pudelko =( HBRUSH ) SelectObject( hdcOkno, PedzelCzer );
    Piornik =( HPEN ) SelectObject( hdcOkno, OlowekCzerw );
    Ellipse( hdcOkno, 200, 530, 300, 630 );
    SelectObject( hdcOkno, Pudelko );
    SelectObject( hdcOkno, Piornik );
    Pudelko =( HBRUSH ) SelectObject( hdcOkno, PedzelBial );
    Ellipse( hdcOkno, 220, 550, 240, 570 );
    Ellipse( hdcOkno, 260, 550, 280, 570 );
    Chord(hdcOkno, 220 ,590, 280, 620, 280, 605, 220, 605);
    DeleteObject( OlowekCzerw );
    DeleteObject( PedzelBial );
    DeleteObject( PedzelCzer );
    ReleaseDC( hwnd, hdcOkno );
    EndPaint(hwnd, &ps);
}


LRESULT CALLBACK GlowneProcedury(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

void s_handle(int s)
{
    if(sock)
        closesocket(sock);
    if(client)
        closesocket(client);
    WSACleanup();
    //cout << "\nSygnal wyjsciowy :" << s;
    //exit(0);
}
void s_cl(string a, int x)
{
    //cout << a;
    SetWindowText(hWyjscieKlientaStatic, a.c_str());
    s_handle(x+1000);
}


int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    INITCOMMONCONTROLSEX icex;
    icex.dwSize=sizeof(INITCOMMONCONTROLSEX);
    icex.dwICC=ICC_BAR_CLASSES;
    InitCommonControlsEx(&icex);

    hMainAppInst = hInstance;

    WNDCLASS wndclass; //struktura zawierająca informacje o klasie naszego okna

    wndclass.style = CS_HREDRAW | CS_VREDRAW; //Flaga ta powoduje, å?e gdy zmienimy rozmiar okna, caå?e okno zostaje na nowo odrysowane.
    //Flaga ta powoduje, å?e gdy zmienimy rozmiar okna, zostaje odrysowany obszar roboczy okna(wn??trze okna, bez paska tytuå?owego i bocznych ramek, jeå?eli takie så?).

    wndclass.lpfnWndProc = GlowneProcedury; // procedura obs?âuguj€Éca okno
    wndclass.cbClsExtra = 0; //cbClsExtra okre?Ýla rozmiar dodatkowych danych przynale??nych do klasy

    //okre?Ýla rozmiar dodatkowych danych przynale??nych do konkretnych instancji klasy.
    //Zaj€ªty (niekoniecznie zaalokowany) obszar ma zawsze rozmiar: cbClsExtra + ilo?Ý€à_okien * cbWndExtra.
    wndclass.cbWndExtra = 0;

    wndclass.hInstance = hInstance; //aplikacja kt??ra jest w?âa?Ýcicielem okna

    //kursor aplkacji. gdzie ma szukac null-zasoby systemowe, idc_arrow systemowy kursor
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);

    // Pobiera uchwyt do jednego ze zdefiniowanych zasob??w systemu: pi??ra, p€ªdzla, czcionki lub palety
    wndclass.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wndclass.lpszMenuName = "GlowneMenu";   //nazwa menu okna w pliku zasobów
    wndclass.lpszClassName = "GlowneOkno";  //nazwa klasy
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); //MAKEINTRESOURCE makro do ?âadowania zasobu

    if(RegisterClass(&wndclass) == 0)
    {
        MessageBox( NULL, "Nie udalo sie zarejestrowac okna", "RegisterClass", MB_ICONEXCLAMATION | MB_OK );
        return FALSE;
    }

    //HMENU hMenu = LoadMenu( hInstance, MAKEINTRESOURCE(GlowneMenu) );
    hMenu = LoadMenu(hInstance, "GlowneMenu");

    if(hMenu == NULL)
    {
        MessageBox (NULL, "Nie mozna zaladowac menu.", NULL, MB_ICONEXCLAMATION);
    }

    HACCEL hAccTable = LoadAccelerators(hInstance, "AkceleratoryMenu");

    if(hAccTable == NULL)
    {
        MessageBox (NULL, "Nie mozna zaladowac akceleratorow.", NULL, MB_ICONEXCLAMATION);
    }

    hMainWindow = CreateWindow(
        "GlowneOkno",
        "Karta Pacjenta - klient",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        1150,
        750,
        NULL,
        hMenu,
        hInstance,
        NULL
    );

    if( hMainWindow == NULL )
    {
        MessageBox( NULL, "Nie zostal utworzony uchwyt do glownego okna.", "Uchwyt", MB_ICONEXCLAMATION );
        return FALSE;
    }

    ShowWindow(hMainWindow, SW_SHOW);
    UpdateWindow(hMainWindow);

    MSG msgs; // zmienna do przechowywania komunikatów

    //petla obsługująca wymianę komunikatów
    while(GetMessage(&msgs, NULL, 0, 0))
    {
        if(TranslateAccelerator(hMainWindow, hAccTable, &msgs) == 0 || IsDialogMessage(hMainWindow, &msgs) == 0)
        {
            //funkcja tłumacząca sygnały z klawiatury na odpowiednie komunikaty systemowe
            TranslateMessage(&msgs);

            //funkcja przetwarzająca komunikaty systemowe przez procedury obsugi
            DispatchMessage(&msgs);
        }
    }

    return msgs.wParam;
}

// OBSłUGA ZDARZEŃ
LRESULT CALLBACK GlowneProcedury(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_CREATE:
        {
            rect.left = 200;
            rect.top = 530;
            rect.right = 300;
            rect.bottom = 630;

            /*** Begin of Pacjent ***/
            // GrupBox
            hPacjentGroupBox = CreateWindow("BUTTON", "Pacjent", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 10, 10, 1115, 300, hwnd, NULL, hMainAppInst, NULL);
            // Buttony
            hSzukajPacjentaButton    = CreateWindow("BUTTON", "Szukaj"      , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,665, 35, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            hWyczyscPacjentaButton   = CreateWindow("BUTTON", "Wyczysc Pola", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 770, 35, 130, 30, hwnd, NULL, hMainAppInst, NULL);
            hAktualizujPacjentaButton       = CreateWindow("BUTTON", "Aktualizuj"  , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 905, 35, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            hDodajPacjentaButton     = CreateWindow("BUTTON", "Dodaj"       , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 1010, 35, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            // Pola
            hPeselStatic             = CreateWindow("STATIC", "PESEL:"              , WS_CHILD | WS_VISIBLE            , 25 , 35 , 50 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hPeselEdit               = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 80 , 35 , 150, 20 , hwnd, NULL, hMainAppInst, NULL);

            hPeselNowyStatic         = CreateWindow("STATIC", "Nowy PESEL:"              , WS_CHILD | WS_VISIBLE            , 240 , 35 , 90 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hPeselNowyEdit           = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 335 , 35 , 150, 20 , hwnd, NULL, hMainAppInst, NULL);

            hImieStatic              = CreateWindow("STATIC", "Imie:"               , WS_CHILD | WS_VISIBLE            , 25 , 70 , 40 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hImieEdit                = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 80 , 70 , 160, 20 , hwnd, NULL, hMainAppInst, NULL);
            hNazwiskoStatic          = CreateWindow("STATIC", "Nazwisko:"           , WS_CHILD | WS_VISIBLE            , 250, 70 , 70 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hNazwiskoEdit            = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 330, 70 , 150, 20 , hwnd, NULL, hMainAppInst, NULL);
            hAdresStatic             = CreateWindow("STATIC", "Adres:"              , WS_CHILD | WS_VISIBLE            , 500, 70 , 45 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hAdresEdit               = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 555, 70 , 255, 20 , hwnd, NULL, hMainAppInst, NULL);
            hUwagiStatic             = CreateWindow("STATIC", "Uwagi:"              , WS_CHILD | WS_VISIBLE            , 820, 70 , 50 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hUwagiEdit               = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 880, 70, 230, 120, hwnd, NULL, hMainAppInst, NULL);
            hAlergieStatic           = CreateWindow("STATIC", "Alergie:"            , WS_CHILD | WS_VISIBLE            , 40 , 100, 50 , 17 , hwnd, NULL, hMainAppInst, NULL);
            hAlergieEdit             = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 100, 100, 300, 80 , hwnd, NULL, hMainAppInst, NULL);
            hPrzewlekleChorobyStatic = CreateWindow("STATIC", "Choroby przewlekle:" , WS_CHILD | WS_VISIBLE            , 410, 100, 140, 17 , hwnd, NULL, hMainAppInst, NULL);
            hPrzewlekleChorobyEdit   = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 560, 100, 300, 80 , hwnd, NULL, hMainAppInst, NULL);
            hprzebyteChorobyStatic        = CreateWindow("STATIC", "Chorowal na:"        , WS_CHILD | WS_VISIBLE            , 40 , 200, 90 , 17,  hwnd, NULL, hMainAppInst, NULL);
            hPrzebyteChorobyEdit          = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 140, 200, 410, 100, hwnd, NULL, hMainAppInst, NULL);
            hObecneChorobyStatic  = CreateWindow("STATIC", "Obecnie choruje na:" , WS_CHILD | WS_VISIBLE            , 560, 200, 130, 17 , hwnd, NULL, hMainAppInst, NULL);
            hObecneChorobyEdit    = CreateWindow("EDIT"  , ""                    , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 700, 200, 410, 100, hwnd, NULL, hMainAppInst, NULL);
            /*** End of Pacjent ***/


            /*** Begin of Choroba ***/
            // GrupBoxy
            hGrupaChoroba = CreateWindow("BUTTON", "Choroba", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 10, 315, 1115, 195, hwnd, NULL, hMainAppInst, NULL);
            // Buttony
            hSzukajChorobaButton     = CreateWindow("BUTTON", "Szukaj"      , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 665, 340, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            hWyczyscChorobaButton    = CreateWindow("BUTTON", "Wyczysc Pola", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 770, 340, 130, 30, hwnd, NULL, hMainAppInst, NULL);
            hAktualizujChorobaButton = CreateWindow("BUTTON", "Aktualizuj"  , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 905, 340, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            hDodajChorobaButton      = CreateWindow("BUTTON", "Dodaj"       , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 1010, 340, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            // Pola
            hIdChorobyStatic       = CreateWindow("STATIC", "ID choroby:"              , WS_CHILD | WS_VISIBLE            , 25 , 340, 80 , 17, hwnd, NULL, hMainAppInst, NULL);
            hIdChorobyEdit         = CreateWindow("EDIT"  , ""                         , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 110, 340, 150, 20, hwnd, NULL, hMainAppInst, NULL);
            hNazwaChorobaStatic           = CreateWindow("STATIC", "Nazwa:"            , WS_CHILD | WS_VISIBLE            , 25, 375, 50 , 17, hwnd, NULL, hMainAppInst, NULL);
            hNazwaChorobaEdit             = CreateWindow("EDIT"  , ""                  , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 80, 375, 200, 20, hwnd, NULL, hMainAppInst, NULL);
            hNowaNazwaChorobaStatic           = CreateWindow("STATIC", "Nowa Nazwa:"   , WS_CHILD | WS_VISIBLE            , 290, 375, 90 , 17, hwnd, NULL, hMainAppInst, NULL);
            hNowaNazwaChorobaEdit             = CreateWindow("EDIT"  , ""              , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 395, 375, 200, 20, hwnd, NULL, hMainAppInst, NULL);
            hDataRozpoczeciaChorobaStatic = CreateWindow("STATIC", "Data rozpoczecia:" , WS_CHILD | WS_VISIBLE            , 25 , 410, 120, 17, hwnd, NULL, hMainAppInst, NULL);
            hDataRozpoczeciaChorobaEdit   = CreateWindow("EDIT"  , ""                  , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 150, 410, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hDataZakonczeniaChorobaStatic = CreateWindow("STATIC", "Data zakonczenia:" , WS_CHILD | WS_VISIBLE            , 265, 410, 120, 17, hwnd, NULL, hMainAppInst, NULL);
            hDataZakonczeniaChorobaEdit   = CreateWindow("EDIT"  , ""                  , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 390, 410, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hGdzieLeczylChorobaStatic     = CreateWindow("STATIC", "Gdzie leczyl:"     , WS_CHILD | WS_VISIBLE            , 505, 410, 100, 17, hwnd, NULL, hMainAppInst, NULL);
            hGdzieLeczylChorobaEdit       = CreateWindow("EDIT"  , ""                  , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 610, 410, 500, 20, hwnd, NULL, hMainAppInst, NULL);
            hLeczenieChorobaStatic        = CreateWindow("STATIC", "Leczenie:"         , WS_CHILD | WS_VISIBLE, 25 , 445, 65 , 17, hwnd, NULL, hMainAppInst, NULL);
            hLeczenieChorobaEdit          = CreateWindow("EDIT"  , ""                  , WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 95 , 445, 1015, 55, hwnd, NULL, hMainAppInst, NULL);
            /*** End of Choroba ***/


            /*** Begin of Statystyki ***/
            /*// GrupBoxy
            hGrupaStatystyki = CreateWindow("BUTTON", "Statystyki", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 10, 475, 1115, 180, hwnd, NULL, hMainAppInst, NULL);
            hGrupaDaty       = CreateWindow("BUTTON", "Daty"      , WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 20, 500, 400, 145, hwnd, NULL, hMainAppInst, NULL);
            // Buttony
            hDodajStatystykiButton      = CreateWindow("BUTTON", "Dodaj"       , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, 30, 525, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            hRysujWykresButton          = CreateWindow("BUTTON", "Rysuj wykres", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, 30, 565, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            hAktualizujStatystykiButton = CreateWindow("BUTTON", "Aktualizuj"  , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, 30, 605, 100, 30, hwnd, NULL, hMainAppInst, NULL);
            // Daty
            hJedenStatystykiStatic    = CreateWindow("STATIC", "1:" , WS_CHILD | WS_VISIBLE            , 140, 517, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hJedenStatystykiEdit      = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 170, 517, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hDwaStatystykiStatic      = CreateWindow("STATIC", "2:" , WS_CHILD | WS_VISIBLE            , 140, 542, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hDwaStatystykiEdit        = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 170, 542, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hTrzyStatystykiStatic     = CreateWindow("STATIC", "3:" , WS_CHILD | WS_VISIBLE            , 140, 567, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hTrzyStatystykiEdit       = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 170, 567, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hCzteryStatystykiStatic   = CreateWindow("STATIC", "4:" , WS_CHILD | WS_VISIBLE            , 140, 592, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hCzteryStatystykiEdit     = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 170, 592, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hPiecStatystykiStatic     = CreateWindow("STATIC", "5:" , WS_CHILD | WS_VISIBLE            , 140, 617, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hPiecStatystykiEdit       = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 170, 617, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hSzescStatystykiStatic    = CreateWindow("STATIC", "6:" , WS_CHILD | WS_VISIBLE            , 280, 517, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hSzescStatystykiEdit      = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 310, 517, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hSiedemStatystykiStatic   = CreateWindow("STATIC", "7:" , WS_CHILD | WS_VISIBLE            , 280, 542, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hSiedemStatystykiEdit     = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 310, 542, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hOsiemStatystykiStatic    = CreateWindow("STATIC", "8:" , WS_CHILD | WS_VISIBLE            , 280, 567, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hOsiemStatystykiEdit      = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 310, 567, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hDziewiecStatystykiStatic = CreateWindow("STATIC", "9:" , WS_CHILD | WS_VISIBLE            , 280, 592, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hDziewiecStatystykiEdit   = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 310, 592, 100, 20, hwnd, NULL, hMainAppInst, NULL);
            hDziesiecStatystykiStatic = CreateWindow("STATIC", "10:", WS_CHILD | WS_VISIBLE            , 280, 617, 25 , 17, hwnd, NULL, hMainAppInst, NULL);
            hDziesiecStatystykiEdit   = CreateWindow("EDIT"  , ""   , WS_CHILD | WS_VISIBLE | WS_BORDER, 310, 617, 100, 20, hwnd, NULL, hMainAppInst, NULL);

            */
            /*** End of Statystyki ***/

            hWyjscieKlientaStatic     = CreateWindow("STATIC", "Status klienta", WS_CHILD | WS_VISIBLE, 320, 520, 790 , 70, hwnd, NULL, hMainAppInst, NULL);
            hLegendaStanuZdrowiaStatic = CreateWindow("STATIC", "Legenda:\nZielony - zdrowy\nZolty - chory / brak danych\nCzerwony - umierajacy", WS_CHILD | WS_VISIBLE, 20, 550, 175 , 200, hwnd, NULL, hMainAppInst, NULL);

            hPolaczButton = CreateWindow("BUTTON", "Polacz", WS_CHILD | WS_VISIBLE, 600, 600, 100, 50, hwnd, NULL, hMainAppInst, NULL);
            hRozlaczButton = CreateWindow("BUTTON", "Rozlacz", WS_CHILD | WS_VISIBLE, 720, 600, 100, 50, hwnd, NULL, hMainAppInst, NULL);
            hZatrzymajServerButton = CreateWindow("BUTTON", "Zatrzymaj serwer", WS_CHILD | WS_VISIBLE, 840, 600, 130, 50, hwnd, NULL, hMainAppInst, NULL);
            hZamknijButton = CreateWindow("BUTTON", "Zamknij", WS_CHILD | WS_VISIBLE, 990, 600, 100, 50, hwnd, NULL, hMainAppInst, NULL);

            SetFocus(hPeselEdit);

            break;
        }
        //polecenia dla komunikatu WM_PAINT
        case WM_PAINT:
        {
            char bufek[1024];
            GetWindowText(hObecneChorobyEdit, bufek, 1024);
            string zdrowie(bufek);
            if(zdrowie.find("umierajacy") != string::npos)
            {
                PaintUmierajacy(hwnd);
            }
            else if(zdrowie.find("chory") != string::npos)
            {
                PaintChory(hwnd);
            }
            else if(zdrowie.find("zdrowy") != string::npos)
            {
                PaintZdrowy(hwnd);
            }
            else
            {
                PaintChory(hwnd);
            }

            UpdateWindow(hMainWindow);
            break;
        }

// Trzeba zrobić subklasę lub superklasę do działania TAB
/*
        case WM_ACTIVATE:
        {
            if(LOWORD(wParam) == 1)
            {
                //temp = GetNextDlgTabItem(hMainWindow, hPeselEdit, FALSE);
                 MessageBox(NULL, "Zmiana aktywnosci", "Tab", MB_ICONEXCLAMATION);
            }

            break;
        }
*/

        case WM_COMMAND:
        {
            InvalidateRect(hwnd, &rect, TRUE);

/*
            // Wykrywanie źródła komunikatu WM_COMMAND, 0 pochodzenie od Menu, 1 pochodzenie od Akceleratora
            if(HIWORD(wParam) == 0)
            {
                MessageBox(NULL, "Komunikat WM_COMMAND pochodzi od Menu.", "Menu", MB_ICONEXCLAMATION);
            }



            if(HIWORD(wParam) == 1)
            {
                MessageBox(NULL, "Komunikat WM_COMMAND pochodzi od Akceleratora.", "Akcelerator", MB_ICONEXCLAMATION);
            }
*/


            if(LOWORD(wParam) == IDM_ZAMKNIJ)
            {
                DestroyWindow( hwnd );

                DestroyMenu(hMenu);

                //uchwyty do pacjenta
                DestroyWindow(hPacjentGroupBox);
                DestroyWindow(hSzukajPacjentaButton);
                DestroyWindow(hWyczyscPacjentaButton);
                DestroyWindow(hAktualizujPacjentaButton);
                DestroyWindow(hDodajPacjentaButton);

                DestroyWindow(hPeselStatic);
                DestroyWindow(hPeselEdit);
                DestroyWindow(hPeselNowyStatic);
                DestroyWindow(hPeselNowyEdit);
                DestroyWindow(hImieStatic);
                DestroyWindow(hImieEdit);
                DestroyWindow(hNazwiskoStatic);
                DestroyWindow(hNazwiskoEdit);
                DestroyWindow(hAdresStatic);
                DestroyWindow(hAdresEdit);
                DestroyWindow(hUwagiStatic);
                DestroyWindow(hUwagiEdit);
                DestroyWindow(hAlergieStatic);
                DestroyWindow(hAlergieEdit);
                DestroyWindow(hPrzewlekleChorobyStatic);
                DestroyWindow(hPrzewlekleChorobyEdit);
                DestroyWindow(hprzebyteChorobyStatic);
                DestroyWindow(hPrzebyteChorobyEdit);
                DestroyWindow(hObecneChorobyStatic);
                DestroyWindow(hObecneChorobyEdit);

                // DestroyWindow(do choroby
                DestroyWindow(hGrupaChoroba);
                DestroyWindow(hSzukajChorobaButton);
                DestroyWindow(hWyczyscChorobaButton);
                DestroyWindow(hAktualizujChorobaButton);
                DestroyWindow(hDodajChorobaButton);
                DestroyWindow(hIdChorobyStatic);
                DestroyWindow(hIdChorobyEdit);
                DestroyWindow(hNazwaChorobaStatic);
                DestroyWindow(hNazwaChorobaEdit);
                DestroyWindow(hNowaNazwaChorobaStatic);
                DestroyWindow(hNowaNazwaChorobaEdit);
                DestroyWindow(hDataRozpoczeciaChorobaStatic);
                DestroyWindow(hDataRozpoczeciaChorobaEdit);
                DestroyWindow(hDataZakonczeniaChorobaStatic);
                DestroyWindow(hDataZakonczeniaChorobaEdit);
                DestroyWindow(hGdzieLeczylChorobaStatic);
                DestroyWindow(hGdzieLeczylChorobaEdit);
                DestroyWindow(hLeczenieChorobaStatic);
                DestroyWindow(hLeczenieChorobaEdit);
/*
                // DestroyWindow(do statystyk
                DestroyWindow(hGrupaStatystyki);
                DestroyWindow(hGrupaDaty);
                DestroyWindow(hDodajStatystykiButton);
                DestroyWindow(hRysujWykresButton);
                DestroyWindow(hAktualizujStatystykiButton);
                DestroyWindow(hJedenStatystykiStatic);
                DestroyWindow(hDwaStatystykiStatic);
                DestroyWindow(hTrzyStatystykiStatic);
                DestroyWindow(hCzteryStatystykiStatic);
                DestroyWindow(hPiecStatystykiStatic);
                DestroyWindow(hSzescStatystykiStatic);
                DestroyWindow(hSiedemStatystykiStatic);
                DestroyWindow(hOsiemStatystykiStatic);
                DestroyWindow(hDziewiecStatystykiStatic);
                DestroyWindow(hDziesiecStatystykiStatic);
                DestroyWindow(hJedenStatystykiEdit);
                DestroyWindow(hDwaStatystykiEdit);
                DestroyWindow(hTrzyStatystykiEdit);
                DestroyWindow(hCzteryStatystykiEdit);
                DestroyWindow(hPiecStatystykiEdit);
                DestroyWindow(hSzescStatystykiEdit);
                DestroyWindow(hSiedemStatystykiEdit);
                DestroyWindow(hOsiemStatystykiEdit);
                DestroyWindow(hDziewiecStatystykiEdit);
                DestroyWindow(hDziesiecStatystykiEdit);
                DestroyWindow(hWyjscieKlientaStatic);
*/
                //przyciski dolne
                DestroyWindow(hPolaczButton);
                DestroyWindow(hZamknijButton);
                DestroyWindow(hRozlaczButton);
                DestroyWindow(hZatrzymajServerButton);

                PostQuitMessage( 0 );
            }



            if(LOWORD(wParam) == IDM_AUTORZY)
            {
                MessageBox(hMainWindow,
                    "Projekt Karta Pacjenta - Klient:\n\n"
                    "Projekt zostal w calosci zaimplementowany w technologii WinAPI.\n\n"
                    "Tworcy:\nKamil Fuss,\nJakub Kolanus,\nMaciej Kaczor,\nMaciej Szmida.",
                    "Autorzy",
                    MB_ICONINFORMATION);
            }



            if((HWND)lParam == hSzukajPacjentaButton)
            {
                ret = GetWindowText(hPeselEdit, buf, 1024);

                if(ret == 0)
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL.");
                else
                {
                    command = "getPacjent=";
                    command += buf;

                    ret = send(sock, command.c_str(), 1024, 0);

                    if(ret == 0 || ret == SOCKET_ERROR)
                    {
                        SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                        WSACleanup();
                        break;
                    }

                    ret = recv(sock, buf, 1024, 0);

                    str_buf = buf;

                    if(ret == 0 || ret == SOCKET_ERROR)
                    {
                        SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                        WSACleanup();
                        break;
                    }
                    else if(str_buf == "baza")
                    {
                        SetWindowText(hWyjscieKlientaStatic, "Blad polaczenia z baza danych.");
                        break;
                    }
                    else if(str_buf == "zapytanie")
                    {
                        SetWindowText(hWyjscieKlientaStatic, "Blad zapytania bazy danych.");
                        break;
                    }
                    else if(str_buf == "")
                    {
                        SetWindowText(hImieEdit, "");
                        SetWindowText(hNazwiskoEdit, "");
                        SetWindowText(hAdresEdit, "");
                        SetWindowText(hUwagiEdit, "");
                        SetWindowText(hAlergieEdit, "");
                        SetWindowText(hPrzewlekleChorobyEdit, "");
                        SetWindowText(hPrzebyteChorobyEdit, "");
                        SetWindowText(hObecneChorobyEdit, "");

                        SetWindowText(hWyjscieKlientaStatic, "Brak danych pacjenta.");
                        break;
                    }

                    char * par;
                    string strPar[9];
                    par = strtok (buf,";");

                    int i = 0;

                    while(par != NULL)
                    {
                        strPar[i] = par;
                        par = strtok(NULL,";");
                        i++;
                    }

                    SetWindowText(hImieEdit, strPar[0].c_str());
                    SetWindowText(hNazwiskoEdit, strPar[1].c_str());
                    SetWindowText(hPeselEdit, strPar[2].c_str());
                    SetWindowText(hAdresEdit, strPar[3].c_str());
                    SetWindowText(hUwagiEdit, strPar[4].c_str());
                    SetWindowText(hAlergieEdit, strPar[5].c_str());
                    SetWindowText(hPrzewlekleChorobyEdit, strPar[6].c_str());
                    SetWindowText(hPrzebyteChorobyEdit, strPar[7].c_str());
                    SetWindowText(hObecneChorobyEdit, strPar[8].c_str());

                    SetWindowText(hWyjscieKlientaStatic, "Pacjent zostal znaleziony.");
                }
            }



            if((HWND)lParam == hWyczyscPacjentaButton)
            {
                SetWindowText(hPeselEdit, "");
                SetWindowText(hPeselNowyEdit, "");
                SetWindowText(hImieEdit, "");
                SetWindowText(hNazwiskoEdit, "");
                SetWindowText(hAdresEdit, "");
                SetWindowText(hUwagiEdit, "");
                SetWindowText(hAlergieEdit, "");
                SetWindowText(hPrzewlekleChorobyEdit, "");
                SetWindowText(hPrzebyteChorobyEdit, "");
                SetWindowText(hObecneChorobyEdit, "");

                SetWindowText(hWyjscieKlientaStatic, "Wyczyszczono pola pacjenta.");
            }



            if((HWND)lParam == hAktualizujPacjentaButton)
            {
                // imie, nazwisko, pesels, adres, uwagi, alergie, przewlekle, przebyte, obecnie, peselw

                ret = GetWindowText(hImieEdit, buf, 1024);      // imie

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac imie.");
                    break;
                }
                else
                {
                    command = "updPacjent=";
                    command += buf + separator;
                }


                ret = GetWindowText(hNazwiskoEdit, buf, 1024);      // nazwisko

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac nazwisko.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPeselNowyEdit, buf, 1024);     // nowy PESEL

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac nowy PESEL.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hAdresEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac adres.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hUwagiEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac uwagi.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hAlergieEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac alergie.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPrzewlekleChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac choroby przewlekle.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPrzebyteChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac przebyte choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hObecneChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac obecne choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPeselEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL.");
                    break;
                }
                else
                    command += buf;

                ret = send(sock, command.c_str(), 1024, 0);

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                    WSACleanup();
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                str_buf = buf;

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    WSACleanup();
                    break;
                }
                else if(str_buf == "baza")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad polaczenia z baza danych.");
                    break;
                }
                else if(str_buf == "zapytanie")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad zapytania bazy danych.");
                    break;
                }
                else if(str_buf == "OK")
                    SetWindowText(hWyjscieKlientaStatic, "Pacjent zostal zaktualizowany.");
            }



            if((HWND)lParam == hDodajPacjentaButton)
            {
                 //imie, nazwisko, pesel, adres, uwagi, alergie, przewlekle, przebyte, obecnie

                ret = GetWindowText(hImieEdit, buf, 1024);      // imie

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac imie.");
                    break;
                }
                else
                {
                    command = "addPacjent=";
                    command += buf + separator;
                }

                ret = GetWindowText(hNazwiskoEdit, buf, 1024);      // nazwisko

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac nazwisko.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPeselNowyEdit, buf, 1024);     // nowy PESEL

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hAdresEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac adres.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hUwagiEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac uwagi.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hAlergieEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac alergie.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPrzewlekleChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac choroby przewlekle.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPrzebyteChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac przebyte choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hObecneChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac obecne choroby.");
                    break;
                }
                else
                    command += buf;


                ret = send(sock, command.c_str(), 1024, 0);

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                    WSACleanup();
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                str_buf = buf;

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    WSACleanup();
                    break;
                }
                else if(str_buf == "baza")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad polaczenia z baza danych.");
                    break;
                }
                else if(str_buf == "zapytanie")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad zapytania bazy danych.");
                    break;
                }
                else if(str_buf == "OK")
                    SetWindowText(hWyjscieKlientaStatic, "Pacjent zostal dodany do bazy danych.");
            }



            if((HWND)lParam == hSzukajChorobaButton)
            {
                ret = GetWindowText(hPeselEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL.");
                    break;
                }
                else
                {
                    command = "getChoroba=";
                    command += buf + separator;
                }

                ret = GetWindowText(hNazwaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac nazwe choroby.");
                    break;
                }
                else
                    command += buf;

                ret = send(sock, command.c_str(), 1024, 0);

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                    WSACleanup();
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                str_buf = buf;

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    WSACleanup();
                    break;
                }
                else if(str_buf == "baza")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad polaczenia z baza danych.");
                    break;
                }
                else if(str_buf == "zapytanie")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad zapytania bazy danych.");
                    break;
                }
                else if(str_buf == "")
                {
                    SetWindowText(hDataRozpoczeciaChorobaEdit, "");
                    SetWindowText(hDataZakonczeniaChorobaEdit, "");
                    SetWindowText(hGdzieLeczylChorobaEdit, "");
                    SetWindowText(hLeczenieChorobaEdit, "");

                    SetWindowText(hWyjscieKlientaStatic, "Brak danych choroby.");
                    break;
                }

                char * par;
                string strPar[5];
                par = strtok (buf,";");

                int i = 0;

                while (par != NULL)
                {
                    strPar[i] = par;
                    par = strtok(NULL,";");
                    i++;
                }

                SetWindowText(hNazwaChorobaEdit, strPar[0].c_str());
                SetWindowText(hDataRozpoczeciaChorobaEdit, strPar[1].c_str());
                SetWindowText(hLeczenieChorobaEdit, strPar[2].c_str());
                SetWindowText(hDataZakonczeniaChorobaEdit, strPar[3].c_str());
                SetWindowText(hGdzieLeczylChorobaEdit, strPar[4].c_str());

                SetWindowText(hWyjscieKlientaStatic, "Choroba zostala znaleziona.");
            }




            if((HWND)lParam == hWyczyscChorobaButton)
            {
                SetWindowText(hIdChorobyEdit, "");
                SetWindowText(hNazwaChorobaEdit, "");
                SetWindowText(hNowaNazwaChorobaEdit, "");
                SetWindowText(hDataRozpoczeciaChorobaEdit, "");
                SetWindowText(hDataZakonczeniaChorobaEdit, "");
                SetWindowText(hGdzieLeczylChorobaEdit, "");
                SetWindowText(hLeczenieChorobaEdit, "");

                SetWindowText(hWyjscieKlientaStatic, "Wyczyszczono pola choroby.");
            }




            if((HWND)lParam == hAktualizujChorobaButton)
            {
                 //  id, nazwa, poczatek, leczenie, koniec, peselc, gdzie_leczyl, nazwaw, peselw

                ret = GetWindowText(hIdChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac ID choroby.");
                    break;
                }
                else
                {
                    command = "updChoroba=";
                    command += buf + separator;
                }


                ret = GetWindowText(hNowaNazwaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac nowa nazwe choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hDataRozpoczeciaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac date rozpoczecia choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hLeczenieChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac leczenie choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hDataZakonczeniaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac date zakonczenia choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPeselNowyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL nowego pacjenta.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hGdzieLeczylChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac miejsce leczenia.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hNazwaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac wczesniejsza nazwe choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hPeselEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL poprzedniego pacjenta.");
                    break;
                }
                else
                    command += buf;


                ret = send(sock, command.c_str(), 1024, 0);

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                    WSACleanup();
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                str_buf = buf;

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    WSACleanup();
                    break;
                }
                else if(str_buf == "baza")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad polaczenia z baza danych.");
                    break;
                }
                else if(str_buf == "zapytanie")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad zapytania bazy danych.");
                    break;
                }
                else if(str_buf == "OK")
                    SetWindowText(hWyjscieKlientaStatic, "Zaktualizowano chorobe.");
            }



            if((HWND)lParam == hDodajChorobaButton)
            {
                // peseld, id, nazwad, poczatek, leczenie, koniec, gdzie_leczyl
                ret = GetWindowText(hPeselEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac PESEL pacjenta.");
                    break;
                }
                else
                {
                    command = "addChoroba=";
                    command += buf + separator;
                }

                ret = GetWindowText(hIdChorobyEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac ID choroby.");
                    break;
                }
                else

                    command += buf + separator;


                ret = GetWindowText(hNowaNazwaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac nowa nazwe choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hDataRozpoczeciaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac date rozpoczecia choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hLeczenieChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac leczenie choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hDataZakonczeniaChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac date zakonczenia choroby.");
                    break;
                }
                else
                    command += buf + separator;


                ret = GetWindowText(hGdzieLeczylChorobaEdit, buf, 1024);

                if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Nalezy podac miejsce leczenia.");
                    break;
                }
                else
                    command += buf;


                ret = send(sock, command.c_str(), 1024, 0);

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                    WSACleanup();
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                str_buf = buf;

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    WSACleanup();
                    break;
                }
                else if(str_buf == "baza")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad polaczenia z baza danych.");
                    break;
                }
                else if(str_buf == "zapytanie")
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad zapytania bazy danych.");
                    break;
                }
                else if(str_buf == "OK")
                    SetWindowText(hWyjscieKlientaStatic, "Choroba zostala dodana do bazy danych.");
            }



            if((HWND)lParam == hPolaczButton)
            {
                if(connected == true)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Klient jest juz podlaczony.");
                    break;
                }
                else
                {
                    int res;
                    //int i = 1;
                    int port = 1000;

                    WSADATA data;

                    signal(SIGINT,s_handle);
                    signal(SIGKILL,s_handle);
                    signal(SIGQUIT,s_handle);

                    sockaddr_in ser; //socket serwera
                    sockaddr addr; //socket ardesu

                    ser.sin_family = AF_INET;
                    ser.sin_port = htons(port);						//Ustanowienie portu połączenia - port 1000
                    ser.sin_addr.s_addr = inet_addr("127.0.0.1");		//Ustanowienie adresu (na sztywno) po?â€Éczenia

                    memcpy(&addr,&ser,sizeof(SOCKADDR_IN));

                    res = WSAStartup(MAKEWORD(2,2),&data);		//Start Winsock

                    string out;
                    out = "WSAStartup\nWersja: ";

                    //TCHAR buf[32];
                    //_itot(data.wVersion, buf, 10);

                    out += data.wVersion;
                    out += "\nOpis: " ;
                    out += data.szDescription;
                    out += "\nStatus: ";
                    out += data.szSystemStatus;

                    SetWindowText(hWyjscieKlientaStatic, out.c_str());

                    if(res != 0)
                    {
                        s_cl("WSAStarup - nie powiodlo sie.", WSAGetLastError());
                        break;
                    }

                    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);		//Tworzenie socket-u

                    //sprawdzanie osiagalnosci Socketu
                    if(sock == INVALID_SOCKET )
                    {
                        s_cl("Socket - nieprawidlowy socket", WSAGetLastError());
                        WSACleanup();
                        break;
                    }
                    else
                        //cout<<"Socket - ustanowiono polaczenie"<<endl;
                        SetWindowText(hWyjscieKlientaStatic, "Socket - utworzono socket.");

                    //Nawiazanie polaczenia z serwerem:
                    res = connect(sock, &addr, sizeof(addr));

                    if(res == SOCKET_ERROR )
                    {
                        s_cl("Brak polaczenia z serwerem.", res);
                        closesocket(sock);
                        WSACleanup();
                        break;
                    }

                    SetWindowText(hWyjscieKlientaStatic, "Socket - ustanowiono polaczenie.");
                    memcpy(&ser, &addr, sizeof(SOCKADDR));

                    //OTRZYMYWANIE INFORMACJI:
                    // FUNKCJA recv:
                    // sock - socket clienta

                    ret = recv(sock, buf, 1024, 0);

                    //PRZECHWYT BLEDOW 0-BRAK TRANSFERU, SOCKET_ERROR - BLAD SOCKETU
                    if(ret == SOCKET_ERROR)
                    {
                        SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                        closesocket(sock);
                        WSACleanup();
                        break;
                    }
                    else if(ret == 0)
                    {
                        SetWindowText(hWyjscieKlientaStatic, "Serwer zamknal polaczenie.");
                        shutdown(sock, SD_SEND);
                        closesocket(sock);
                        WSACleanup();
                        break;
                    }

                    out = "Serwer: ";
                    out += buf;

                    connected = true;
                    SetWindowText(hWyjscieKlientaStatic, out.c_str());
                }
            }


            if((HWND)lParam == hRozlaczButton)
            {
                if(connected == false)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Klient jest juz rozlaczony.");
                    break;
                }

                //ret = send(sock, "exit", 1024, 0);

                ret = shutdown(sock, SD_SEND);

                if(ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad zamykania socketu.");
                    closesocket(sock);
                    WSACleanup();
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                if(ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    closesocket(sock);
                    WSACleanup();
                    connected = false;
                    break;
                }
                else if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Serwer zamknal polaczenie.");
                    closesocket(sock);
                    WSACleanup();
                    connected = false;
                    Sleep(1000);
                    SetWindowText(hWyjscieKlientaStatic, "Rozlaczono z serwerem.");
                    break;
                }
            }



            if((HWND)lParam == hZatrzymajServerButton)
            {
                if(connected == false)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Klient jest rozlaczony, nie mozna przeslac zadania.");
                    break;
                }

                ret = send(sock, "stop", 1024, 0);

                if(ret == 0 || ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad wysylania danych do serwera.");
                    closesocket(sock);
                    WSACleanup();
                    connected = false;
                    break;
                }

                ret = recv(sock, buf, 1024, 0);

                if(ret == SOCKET_ERROR)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Blad pobierania danych z serwera.");
                    closesocket(sock);
                    WSACleanup();
                    connected = false;
                    break;
                }
                else if(ret == 0)
                {
                    SetWindowText(hWyjscieKlientaStatic, "Serwer zamknal polaczenie.");
                    closesocket(sock);
                    WSACleanup();
                    connected = false;
                    Sleep(1000);
                    SetWindowText(hWyjscieKlientaStatic, "Serwer zostal zatrzymany.");
                    break;
                }
            }



            if((HWND)lParam == hZamknijButton)
            {
                DestroyWindow( hwnd );

                DestroyMenu(hMenu);

                //uchwyty do pacjenta
                DestroyWindow(hPacjentGroupBox);
                DestroyWindow(hSzukajPacjentaButton);
                DestroyWindow(hWyczyscPacjentaButton);
                DestroyWindow(hAktualizujPacjentaButton);
                DestroyWindow(hDodajPacjentaButton);

                DestroyWindow(hPeselStatic);
                DestroyWindow(hPeselEdit);
                DestroyWindow(hPeselNowyStatic);
                DestroyWindow(hPeselNowyEdit);
                DestroyWindow(hImieStatic);
                DestroyWindow(hImieEdit);
                DestroyWindow(hNazwiskoStatic);
                DestroyWindow(hNazwiskoEdit);
                DestroyWindow(hAdresStatic);
                DestroyWindow(hAdresEdit);
                DestroyWindow(hUwagiStatic);
                DestroyWindow(hUwagiEdit);
                DestroyWindow(hAlergieStatic);
                DestroyWindow(hAlergieEdit);
                DestroyWindow(hPrzewlekleChorobyStatic);
                DestroyWindow(hPrzewlekleChorobyEdit);
                DestroyWindow(hprzebyteChorobyStatic);
                DestroyWindow(hPrzebyteChorobyEdit);
                DestroyWindow(hObecneChorobyStatic);
                DestroyWindow(hObecneChorobyEdit);

                // DestroyWindow(do choroby
                DestroyWindow(hGrupaChoroba);
                DestroyWindow(hSzukajChorobaButton);
                DestroyWindow(hWyczyscChorobaButton);
                DestroyWindow(hAktualizujChorobaButton);
                DestroyWindow(hDodajChorobaButton);
                DestroyWindow(hIdChorobyStatic);
                DestroyWindow(hIdChorobyEdit);
                DestroyWindow(hNazwaChorobaStatic);
                DestroyWindow(hNazwaChorobaEdit);
                DestroyWindow(hNowaNazwaChorobaStatic);
                DestroyWindow(hNowaNazwaChorobaEdit);
                DestroyWindow(hDataRozpoczeciaChorobaStatic);
                DestroyWindow(hDataRozpoczeciaChorobaEdit);
                DestroyWindow(hDataZakonczeniaChorobaStatic);
                DestroyWindow(hDataZakonczeniaChorobaEdit);
                DestroyWindow(hGdzieLeczylChorobaStatic);
                DestroyWindow(hGdzieLeczylChorobaEdit);
                DestroyWindow(hLeczenieChorobaStatic);
                DestroyWindow(hLeczenieChorobaEdit);
/*
                // DestroyWindow(do statystyk
                DestroyWindow(hGrupaStatystyki);
                DestroyWindow(hGrupaDaty);
                DestroyWindow(hDodajStatystykiButton);
                DestroyWindow(hRysujWykresButton);
                DestroyWindow(hAktualizujStatystykiButton);
                DestroyWindow(hJedenStatystykiStatic);
                DestroyWindow(hDwaStatystykiStatic);
                DestroyWindow(hTrzyStatystykiStatic);
                DestroyWindow(hCzteryStatystykiStatic);
                DestroyWindow(hPiecStatystykiStatic);
                DestroyWindow(hSzescStatystykiStatic);
                DestroyWindow(hSiedemStatystykiStatic);
                DestroyWindow(hOsiemStatystykiStatic);
                DestroyWindow(hDziewiecStatystykiStatic);
                DestroyWindow(hDziesiecStatystykiStatic);
                DestroyWindow(hJedenStatystykiEdit);
                DestroyWindow(hDwaStatystykiEdit);
                DestroyWindow(hTrzyStatystykiEdit);
                DestroyWindow(hCzteryStatystykiEdit);
                DestroyWindow(hPiecStatystykiEdit);
                DestroyWindow(hSzescStatystykiEdit);
                DestroyWindow(hSiedemStatystykiEdit);
                DestroyWindow(hOsiemStatystykiEdit);
                DestroyWindow(hDziewiecStatystykiEdit);
                DestroyWindow(hDziesiecStatystykiEdit);
                DestroyWindow(hWyjscieKlientaStatic);
*/
                //przyciski dolne
                DestroyWindow(hPolaczButton);
                DestroyWindow(hZamknijButton);
                DestroyWindow(hRozlaczButton);
                DestroyWindow(hZatrzymajServerButton);

                PostQuitMessage( 0 );
            }

            break;
        }
        //polecenia dla komunikatu WM_CLOSE
        case WM_CLOSE:
        {
            DestroyWindow( hwnd );

            DestroyMenu(hMenu);

            //uchwyty do pacjenta
            DestroyWindow(hPacjentGroupBox);
            DestroyWindow(hSzukajPacjentaButton);
            DestroyWindow(hWyczyscPacjentaButton);
            DestroyWindow(hAktualizujPacjentaButton);
            DestroyWindow(hDodajPacjentaButton);

            DestroyWindow(hPeselStatic);
            DestroyWindow(hPeselEdit);
            DestroyWindow(hPeselNowyStatic);
            DestroyWindow(hPeselNowyEdit);
            DestroyWindow(hImieStatic);
            DestroyWindow(hImieEdit);
            DestroyWindow(hNazwiskoStatic);
            DestroyWindow(hNazwiskoEdit);
            DestroyWindow(hAdresStatic);
            DestroyWindow(hAdresEdit);
            DestroyWindow(hUwagiStatic);
            DestroyWindow(hUwagiEdit);
            DestroyWindow(hAlergieStatic);
            DestroyWindow(hAlergieEdit);
            DestroyWindow(hPrzewlekleChorobyStatic);
            DestroyWindow(hPrzewlekleChorobyEdit);
            DestroyWindow(hprzebyteChorobyStatic);
            DestroyWindow(hPrzebyteChorobyEdit);
            DestroyWindow(hObecneChorobyStatic);
            DestroyWindow(hObecneChorobyEdit);

            // DestroyWindow(do choroby
            DestroyWindow(hGrupaChoroba);
            DestroyWindow(hSzukajChorobaButton);
            DestroyWindow(hWyczyscChorobaButton);
            DestroyWindow(hAktualizujChorobaButton);
            DestroyWindow(hDodajChorobaButton);
            DestroyWindow(hIdChorobyStatic);
            DestroyWindow(hIdChorobyEdit);
            DestroyWindow(hNazwaChorobaStatic);
            DestroyWindow(hNazwaChorobaEdit);
            DestroyWindow(hNowaNazwaChorobaStatic);
            DestroyWindow(hNowaNazwaChorobaEdit);
            DestroyWindow(hDataRozpoczeciaChorobaStatic);
            DestroyWindow(hDataRozpoczeciaChorobaEdit);
            DestroyWindow(hDataZakonczeniaChorobaStatic);
            DestroyWindow(hDataZakonczeniaChorobaEdit);
            DestroyWindow(hGdzieLeczylChorobaStatic);
            DestroyWindow(hGdzieLeczylChorobaEdit);
            DestroyWindow(hLeczenieChorobaStatic);
            DestroyWindow(hLeczenieChorobaEdit);
/*
            // DestroyWindow(do statystyk
            DestroyWindow(hGrupaStatystyki);
            DestroyWindow(hGrupaDaty);
            DestroyWindow(hDodajStatystykiButton);
            DestroyWindow(hRysujWykresButton);
            DestroyWindow(hAktualizujStatystykiButton);
            DestroyWindow(hJedenStatystykiStatic);
            DestroyWindow(hDwaStatystykiStatic);
            DestroyWindow(hTrzyStatystykiStatic);
            DestroyWindow(hCzteryStatystykiStatic);
            DestroyWindow(hPiecStatystykiStatic);
            DestroyWindow(hSzescStatystykiStatic);
            DestroyWindow(hSiedemStatystykiStatic);
            DestroyWindow(hOsiemStatystykiStatic);
            DestroyWindow(hDziewiecStatystykiStatic);
            DestroyWindow(hDziesiecStatystykiStatic);
            DestroyWindow(hJedenStatystykiEdit);
            DestroyWindow(hDwaStatystykiEdit);
            DestroyWindow(hTrzyStatystykiEdit);
            DestroyWindow(hCzteryStatystykiEdit);
            DestroyWindow(hPiecStatystykiEdit);
            DestroyWindow(hSzescStatystykiEdit);
            DestroyWindow(hSiedemStatystykiEdit);
            DestroyWindow(hOsiemStatystykiEdit);
            DestroyWindow(hDziewiecStatystykiEdit);
            DestroyWindow(hDziesiecStatystykiEdit);
            DestroyWindow(hWyjscieKlientaStatic);
*/
            //przyciski dolne
            DestroyWindow(hPolaczButton);
            DestroyWindow(hZamknijButton);
            DestroyWindow(hRozlaczButton);
            DestroyWindow(hZatrzymajServerButton);

            break;
        }
        case WM_DESTROY:
        {
            DestroyWindow( hwnd );

            DestroyMenu(hMenu);

            //uchwyty do pacjenta
            DestroyWindow(hPacjentGroupBox);
            DestroyWindow(hSzukajPacjentaButton);
            DestroyWindow(hWyczyscPacjentaButton);
            DestroyWindow(hAktualizujPacjentaButton);
            DestroyWindow(hDodajPacjentaButton);

            DestroyWindow(hPeselStatic);
            DestroyWindow(hPeselEdit);
            DestroyWindow(hPeselNowyStatic);
            DestroyWindow(hPeselNowyEdit);
            DestroyWindow(hImieStatic);
            DestroyWindow(hImieEdit);
            DestroyWindow(hNazwiskoStatic);
            DestroyWindow(hNazwiskoEdit);
            DestroyWindow(hAdresStatic);
            DestroyWindow(hAdresEdit);
            DestroyWindow(hUwagiStatic);
            DestroyWindow(hUwagiEdit);
            DestroyWindow(hAlergieStatic);
            DestroyWindow(hAlergieEdit);
            DestroyWindow(hPrzewlekleChorobyStatic);
            DestroyWindow(hPrzewlekleChorobyEdit);
            DestroyWindow(hprzebyteChorobyStatic);
            DestroyWindow(hPrzebyteChorobyEdit);
            DestroyWindow(hObecneChorobyStatic);
            DestroyWindow(hObecneChorobyEdit);

            // DestroyWindow(do choroby
            DestroyWindow(hGrupaChoroba);
            DestroyWindow(hSzukajChorobaButton);
            DestroyWindow(hWyczyscChorobaButton);
            DestroyWindow(hAktualizujChorobaButton);
            DestroyWindow(hDodajChorobaButton);
            DestroyWindow(hIdChorobyStatic);
            DestroyWindow(hIdChorobyEdit);
            DestroyWindow(hNazwaChorobaStatic);
            DestroyWindow(hNazwaChorobaEdit);
            DestroyWindow(hNowaNazwaChorobaStatic);
            DestroyWindow(hNowaNazwaChorobaEdit);
            DestroyWindow(hDataRozpoczeciaChorobaStatic);
            DestroyWindow(hDataRozpoczeciaChorobaEdit);
            DestroyWindow(hDataZakonczeniaChorobaStatic);
            DestroyWindow(hDataZakonczeniaChorobaEdit);
            DestroyWindow(hGdzieLeczylChorobaStatic);
            DestroyWindow(hGdzieLeczylChorobaEdit);
            DestroyWindow(hLeczenieChorobaStatic);
            DestroyWindow(hLeczenieChorobaEdit);
/*
            // DestroyWindow(do statystyk
            DestroyWindow(hGrupaStatystyki);
            DestroyWindow(hGrupaDaty);
            DestroyWindow(hDodajStatystykiButton);
            DestroyWindow(hRysujWykresButton);
            DestroyWindow(hAktualizujStatystykiButton);
            DestroyWindow(hJedenStatystykiStatic);
            DestroyWindow(hDwaStatystykiStatic);
            DestroyWindow(hTrzyStatystykiStatic);
            DestroyWindow(hCzteryStatystykiStatic);
            DestroyWindow(hPiecStatystykiStatic);
            DestroyWindow(hSzescStatystykiStatic);
            DestroyWindow(hSiedemStatystykiStatic);
            DestroyWindow(hOsiemStatystykiStatic);
            DestroyWindow(hDziewiecStatystykiStatic);
            DestroyWindow(hDziesiecStatystykiStatic);
            DestroyWindow(hJedenStatystykiEdit);
            DestroyWindow(hDwaStatystykiEdit);
            DestroyWindow(hTrzyStatystykiEdit);
            DestroyWindow(hCzteryStatystykiEdit);
            DestroyWindow(hPiecStatystykiEdit);
            DestroyWindow(hSzescStatystykiEdit);
            DestroyWindow(hSiedemStatystykiEdit);
            DestroyWindow(hOsiemStatystykiEdit);
            DestroyWindow(hDziewiecStatystykiEdit);
            DestroyWindow(hDziesiecStatystykiEdit);
            DestroyWindow(hWyjscieKlientaStatic);
*/
            //przyciski dolne
            DestroyWindow(hPolaczButton);
            DestroyWindow(hZamknijButton);
            DestroyWindow(hRozlaczButton);
            DestroyWindow(hZatrzymajServerButton);

            PostQuitMessage( 0 );

            break;
        }
        default:
		{
            return DefWindowProc(hwnd, msg, wParam, lParam);
		}
	}

  return 0;
}


/*
int main()
{
    //Declarations
    int res,i=1,port=1000;
    char buf[1024];

    WSADATA data;

    signal(SIGINT,s_handle);
    signal(SIGKILL,s_handle);
    signal(SIGQUIT,s_handle);

    cout<<"Echo Klient" << endl;


    sockaddr_in ser; //socket serwera
    sockaddr addr; //socket ardesu

    ser.sin_family=AF_INET;
    ser.sin_port=htons(port);						//Ustanowienie portu po?â€Éczenia - port 1000
    ser.sin_addr.s_addr=inet_addr("127.0.0.1");		//Ustanowienie adresu (na sztywno) po?â€Éczenia

    memcpy(&addr,&ser,sizeof(SOCKADDR_IN));

    res = WSAStartup(MAKEWORD(2,2),&data);		//Start Winsock

    cout<<"\n\nWSAStartup"
        <<"\nWersja: " << data.wVersion
        <<"\nOpis: " << data.szDescription
        <<"\nStatus: " << data.szSystemStatus<<endl;

    if(res != 0)
        s_cl("WSAStarup - nie powiodlo sie.",WSAGetLastError());

    sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);		//Tworzenie socket-u

    //sprawdzanie osiagalnosci Socketu
    if(sock == INVALID_SOCKET )
        s_cl("Socket - nie dziala",WSAGetLastError());

    //sprawdzanie ewentualnego bledu Socketu
    else if(sock==SOCKET_ERROR)
        s_cl("Socket - blad)",WSAGetLastError());

    else
        cout<<"Socket - ustanowiono polaczenie"<<endl;

    //Nawiazanie polaczenia z serwerem:
    res = connect(sock,&addr,sizeof(addr));
    if(res != 0 )
    {
        s_cl("Server nieosiagalny",res);
    }
    else
    {
        cout << "\nPolaczenie z Serverem." << endl;
        cout << "************************" << endl << endl;
        memcpy(&ser,&addr,sizeof(SOCKADDR));
    }

    //petla odpowiedzialna za utrzymanie polaczenia
    while(true)
    {
        //OTRZYMYWANIE INFORMACJI:
        // FUNKCJA recv:
        // sock - socket clienta
        int ret = recv(sock,buf,1024,0);

        //PRZECHWYT BLEDOW 0-BRAK TRANSFERU, SOCKET_ERROR - BLAD SOCKETU
        if(ret == 0 || ret == SOCKET_ERROR)
        {
            cout << "Blad transferu - otrzymywanie danych" << endl;
            break;
        }
        else if(buf[0] == 0) { }

        else
        {
            cout << "\nSerwer: " << buf << endl << endl;
        }
        buf[0]=0;

        cout << "\ncmd?> ";
        //gets(buf);

        // strumie?ã cin oczekuje dop??ki nie otrzyma pierwszego nie bia?âego znaku,
        // co powoduje wstrzymywanie wywo?âania funkcji send()
        // nigdy nie przekazuje pustego bufora
        //std::cin >> buf;

        // funkcja getline() zwraca pusty bufor w przypadku wyst€Épienia enter'a na pierwszym miejscu
        // dzi€ªki czemu funkcja send() znajduj€Éca si€ª poni??ej jest wywo?âywana
        // enter jest wyrzucany ze strumienia, dlatego if(buf[0] == 0) jest konieczny
        cin.getline(buf, 1024);

        ret = send(sock, buf, 1024, 0);

        //WSYLANIE INFORMACJI:
        //PRZECHWYT BLEDOW 0-BRAK TRANSFERU, SOCKET_ERROR - BLAD SOCKETU
        if(ret == 0 || ret == SOCKET_ERROR)
        {
            cout << "Blad transferu - wysylanie danych" << endl;
            break;
        }
    }

    WSACleanup();
    return 0;
}
*/
